﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

//Importamos
using EventSys.BussinesEntities;
using PagedList;

namespace EventSys.Repository
{
    public class ActividadRepository:MasterRepository,IActividadRepository
    {
        public List<Actividad> GetAllFromActividad()
        {
            var query = from a in Context.Actividads
                            .Include("TipoActividad")
                        select a;
            return query.ToList();


        }

        public List<Actividad> GetActividadByCriterio(string criterio)
        {
            var query = Context.Actividads.ToList();

            if (criterio != "")
            {
                query = (query.Where(a => a.idEvento.ToString().ToUpper().Contains(criterio.ToUpper())).ToList());
            }

            return query;

        }

        public Actividad GetActividadById(int id)
        {
            return Context.Actividads.Find(id);
        }

        public void AddActividad(Actividad actividad)
        {
            Context.Actividads.Add(actividad);
            Context.SaveChanges();
        }

        public void UpdateActividad(Actividad actividad)
        {
            throw new NotImplementedException();
        }

        public void RemoveActividad(int id)
        {
            throw new NotImplementedException();
        }




        public List<Actividad> GetActividadByIdEvent(int id)
        {
            var detActividads = (from a in Context.Actividads
                                 where a.idEvento == id
                                 select a)
                            .ToList();
            return detActividads;
        }


        public IPagedList<Actividad> GetActividadByIdEvento(int id, int page, int size)
        {
            var detActividads = from a in Context.Actividads
                                 where a.idEvento == id
                                 orderby a.Fecha
                                 select a;
            //return detActividads;

            //var query = from e in Context.Eventoes
            //            .Include("TipoActividad")
            //            .Include("Estado")
            //            orderby e.FechaIni
            //            select e;

/*            var query = from a in Context.Actividads
                        select a;

            if (id != null)
            {
                query = query.Where(a => a.idEvento == id);
            }

            return query.OrderBy(a => a.Fecha).ToPagedList(page, size);*/

            return detActividads.OrderBy(a => a.Fecha).ToPagedList(page, size);
        }
    }
}
